using System;
using System.Threading.Tasks;
using Abp.Application.Services;
using Abp.Application.Services.Dto;
using Dyan.PlatformSystem.Customers.Dtos;
using Dyan.PlatformSystem.Dto;

namespace Dyan.PlatformSystem.Customers
{
    public interface ICustomerBaseInfosAppService : IApplicationService 
    {
        Task<PagedResultDto<GetCustomerBaseInfoForViewDto>> GetAll(GetAllCustomerBaseInfosInput input);

        Task<GetCustomerBaseInfoForViewDto> GetCustomerBaseInfoForView(Guid id);

		Task<GetCustomerBaseInfoForEditOutput> GetCustomerBaseInfoForEdit(EntityDto<Guid> input);

		Task CreateOrEdit(CreateOrEditCustomerBaseInfoDto input);

		Task Delete(EntityDto<Guid> input);

		Task<FileDto> GetCustomerBaseInfosToExcel(GetAllCustomerBaseInfosForExcelInput input);

        Task<PagedResultDto<CustomerBaseInfoCustomerAccountLookupTableDto>> GetAllCustomerAccountForLookupTable(GetAllForLookupTableInput input);
    }
}